<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>

	<script>
		function factorial2(num){
		 	if(num<=1){
		 		return 1;
		 	}else{
		 		console.info(num);
		 		return num*arguments.callee(num-1);
		 		//return num*factorial2(num-1);
		 	}
		 }
		/*
		 *1.结果：在重写的 factorial2()函数的函数体内，没有再引用factorial2
		 *2.原因:trueFactoral获得了factorial2的值，实际是在另外一个位置上保存了一个函数的指针。
		 *  如果不使用arguments.callee的话就会返回0
		 * */
		var trueFactoral=factorial2;
		factorial2=function(){
			return 0;
		}
		alert(trueFactoral(5));
		alert(factorial2(5));
	</script>
	</body>
</html>
